Nová tabulka ze select-u
Otázka od: Ing. Peter Kurek
2. 10. 2002 15:54
Jsem zacatecnik v DELPHI, prosim poradit.
Delam vyber z tabulky, ktery chci ulozit do nove tabulky.
Puvodni databaze se sklada z plateb za balik, pricemz za balik je zaplaceno
nekolik castek. Potrebuji vyslednou tabulku, kde je jenom celkova cena
zaplacena za balik a baliky jsou serazeny vzestupne.
Kdyz provedu select, vyber se mi podle pozadavku zobrazi v DBGrid.
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('select b.Balik, SUM(b.Kc) from D_Knihabaliku a');
Query2.SQL.Add('left join D_Vykony b on (a.Balik = b.Balik)');
Query2.SQL.Add('where a.Datum <= "' + MaskEdit1.Text + '" and a.Expedice > "'
+ MaskEdit1.Text + '" and b.Datum <= "' + MaskEdit1.Text + '"');
Query2.SQL.Add('group by b.Balik');
Query2.SQL.Add('order by b.Balik');
Query2.Open;
Kdyz vsak chci tento vyber uložit do nove tabulky, select se neprovede a dojde
k zastaveni s hlasenim 'Type mismatch in expression'. Chybu delam v definovani
a funkce SUM(b.Kc), ???
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('insert into D_Rozpr');
Query2.SQL.Add('select b.Balik, sum(b.Kc) from D_Knihabaliku a');
Query2.SQL.Add('left join D_Vykony b on (a.Balik = b.Balik)');
Query2.SQL.Add('where a.Datum <= "' + MaskEdit1.Text + '" and a.Expedice > "'
+ MaskEdit1.Text + '" and b.Datum <= "' + MaskEdit1.Text + '"');
Query2.SQL.Add('group by b.Balik');
Query2.SQL.Add('order by b.Balik');
Query2.ExecSQL;
Dekuji za pripadnou pomoc, Peter
P. Kurek
PROFTEX, a. s.
Tržní čp. 282
386 01 Strakonice
tel: 383 321 248
info@proftex.cz
---
Odchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.393 / Virová báze: 223 - datum vydání: 30.09.02
Odpovedá: Bohdan Dudla
2. 10. 2002 17:15
Musis uvest pole do kterych prijdou hodnoty:
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('insert into D_Rozpr (Balik, Suma)');
********************************************************************************
Query2.SQL.Add('select b.Balik, sum(b.Kc) from D_Knihabaliku a');
Query2.SQL.Add('left join D_Vykony b on (a.Balik = b.Balik)');
Query2.SQL.Add('where a.Datum <= "' + MaskEdit1.Text + '" and a.Expedice > "'
+ MaskEdit1.Text + '" and b.Datum <= "' + MaskEdit1.Text + '"');
Query2.SQL.Add('group by b.Balik');
Query2.SQL.Add('order by b.Balik');
Query2.ExecSQL;
With best regards,
Bohdan Dudla
Pike Electronic spol. s r.o.
Modrinova 2
300 00 Plzen
Czech Republic
tel: +420 19 72 40 738
fax: +420 19 74 31 738
gsm: +420 732 441 716
e-mail: bdudla@pikeelectronic.com